package edu.bw.controller.json;

import edu.bw.vo.Product;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;


@RestController  //相当于@Controller+@ResponseBody这两个注解(所有的方法都会响应json数据)
@RequestMapping("/product")
public class ProductController {


    /**
     * 基本类型的参数绑定
     * @param id
     * @return
     */
//    @Bean(name= "newProductController")
    @PostMapping("/findById.do")
    public /*@ResponseBody*/ Product findById(@RequestBody Integer id){
        return new Product(id,"Tcl液晶电视",2999.0);
    }


    /**
     * 数组类型的参数绑定
     * @param ids
     * @return
     */
    @PostMapping("/findByIds.do")
    public /*@ResponseBody*/ Integer[] findByIds(@RequestBody Integer[] ids){
        return ids;
    }

    /**
     * VO类型及包装类
     */
    @PostMapping("/update.do")
    public Product updateProduct(@RequestBody Product product){
        System.out.println(product);
        int i=1/0;
        return product;
    }

    /**
     * 集合类型参数绑定
     * @return
     */
    @PostMapping("/findByList.do")
    public List<Product> findByList(@RequestBody List<Product> productList){
        productList.forEach(System.out::println);
        return productList;
    }


    /**
     *Map集合参数绑定
     * @return
     */
    @PostMapping("/findByMap.do")
    public Map<Integer,Product> findByMap(@RequestBody Map<Integer,Product> productMap){
        productMap.forEach((key,value)-> System.out.println(key+" "+value));
        return productMap;
    }


}
